package com.weimall.pojo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class GzSlExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public GzSlExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andJsIsNull() {
            addCriterion("JS is null");
            return (Criteria) this;
        }

        public Criteria andJsIsNotNull() {
            addCriterion("JS is not null");
            return (Criteria) this;
        }

        public Criteria andJsEqualTo(Integer value) {
            addCriterion("JS =", value, "js");
            return (Criteria) this;
        }

        public Criteria andJsNotEqualTo(Integer value) {
            addCriterion("JS <>", value, "js");
            return (Criteria) this;
        }

        public Criteria andJsGreaterThan(Integer value) {
            addCriterion("JS >", value, "js");
            return (Criteria) this;
        }

        public Criteria andJsGreaterThanOrEqualTo(Integer value) {
            addCriterion("JS >=", value, "js");
            return (Criteria) this;
        }

        public Criteria andJsLessThan(Integer value) {
            addCriterion("JS <", value, "js");
            return (Criteria) this;
        }

        public Criteria andJsLessThanOrEqualTo(Integer value) {
            addCriterion("JS <=", value, "js");
            return (Criteria) this;
        }

        public Criteria andJsIn(List<Integer> values) {
            addCriterion("JS in", values, "js");
            return (Criteria) this;
        }

        public Criteria andJsNotIn(List<Integer> values) {
            addCriterion("JS not in", values, "js");
            return (Criteria) this;
        }

        public Criteria andJsBetween(Integer value1, Integer value2) {
            addCriterion("JS between", value1, value2, "js");
            return (Criteria) this;
        }

        public Criteria andJsNotBetween(Integer value1, Integer value2) {
            addCriterion("JS not between", value1, value2, "js");
            return (Criteria) this;
        }

        public Criteria andSxIsNull() {
            addCriterion("SX is null");
            return (Criteria) this;
        }

        public Criteria andSxIsNotNull() {
            addCriterion("SX is not null");
            return (Criteria) this;
        }

        public Criteria andSxEqualTo(BigDecimal value) {
            addCriterion("SX =", value, "sx");
            return (Criteria) this;
        }

        public Criteria andSxNotEqualTo(BigDecimal value) {
            addCriterion("SX <>", value, "sx");
            return (Criteria) this;
        }

        public Criteria andSxGreaterThan(BigDecimal value) {
            addCriterion("SX >", value, "sx");
            return (Criteria) this;
        }

        public Criteria andSxGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("SX >=", value, "sx");
            return (Criteria) this;
        }

        public Criteria andSxLessThan(BigDecimal value) {
            addCriterion("SX <", value, "sx");
            return (Criteria) this;
        }

        public Criteria andSxLessThanOrEqualTo(BigDecimal value) {
            addCriterion("SX <=", value, "sx");
            return (Criteria) this;
        }

        public Criteria andSxIn(List<BigDecimal> values) {
            addCriterion("SX in", values, "sx");
            return (Criteria) this;
        }

        public Criteria andSxNotIn(List<BigDecimal> values) {
            addCriterion("SX not in", values, "sx");
            return (Criteria) this;
        }

        public Criteria andSxBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SX between", value1, value2, "sx");
            return (Criteria) this;
        }

        public Criteria andSxNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SX not between", value1, value2, "sx");
            return (Criteria) this;
        }

        public Criteria andXxIsNull() {
            addCriterion("XX is null");
            return (Criteria) this;
        }

        public Criteria andXxIsNotNull() {
            addCriterion("XX is not null");
            return (Criteria) this;
        }

        public Criteria andXxEqualTo(BigDecimal value) {
            addCriterion("XX =", value, "xx");
            return (Criteria) this;
        }

        public Criteria andXxNotEqualTo(BigDecimal value) {
            addCriterion("XX <>", value, "xx");
            return (Criteria) this;
        }

        public Criteria andXxGreaterThan(BigDecimal value) {
            addCriterion("XX >", value, "xx");
            return (Criteria) this;
        }

        public Criteria andXxGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("XX >=", value, "xx");
            return (Criteria) this;
        }

        public Criteria andXxLessThan(BigDecimal value) {
            addCriterion("XX <", value, "xx");
            return (Criteria) this;
        }

        public Criteria andXxLessThanOrEqualTo(BigDecimal value) {
            addCriterion("XX <=", value, "xx");
            return (Criteria) this;
        }

        public Criteria andXxIn(List<BigDecimal> values) {
            addCriterion("XX in", values, "xx");
            return (Criteria) this;
        }

        public Criteria andXxNotIn(List<BigDecimal> values) {
            addCriterion("XX not in", values, "xx");
            return (Criteria) this;
        }

        public Criteria andXxBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("XX between", value1, value2, "xx");
            return (Criteria) this;
        }

        public Criteria andXxNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("XX not between", value1, value2, "xx");
            return (Criteria) this;
        }

        public Criteria andSlIsNull() {
            addCriterion("SL is null");
            return (Criteria) this;
        }

        public Criteria andSlIsNotNull() {
            addCriterion("SL is not null");
            return (Criteria) this;
        }

        public Criteria andSlEqualTo(BigDecimal value) {
            addCriterion("SL =", value, "sl");
            return (Criteria) this;
        }

        public Criteria andSlNotEqualTo(BigDecimal value) {
            addCriterion("SL <>", value, "sl");
            return (Criteria) this;
        }

        public Criteria andSlGreaterThan(BigDecimal value) {
            addCriterion("SL >", value, "sl");
            return (Criteria) this;
        }

        public Criteria andSlGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("SL >=", value, "sl");
            return (Criteria) this;
        }

        public Criteria andSlLessThan(BigDecimal value) {
            addCriterion("SL <", value, "sl");
            return (Criteria) this;
        }

        public Criteria andSlLessThanOrEqualTo(BigDecimal value) {
            addCriterion("SL <=", value, "sl");
            return (Criteria) this;
        }

        public Criteria andSlIn(List<BigDecimal> values) {
            addCriterion("SL in", values, "sl");
            return (Criteria) this;
        }

        public Criteria andSlNotIn(List<BigDecimal> values) {
            addCriterion("SL not in", values, "sl");
            return (Criteria) this;
        }

        public Criteria andSlBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SL between", value1, value2, "sl");
            return (Criteria) this;
        }

        public Criteria andSlNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SL not between", value1, value2, "sl");
            return (Criteria) this;
        }

        public Criteria andSskcsIsNull() {
            addCriterion("SSKCS is null");
            return (Criteria) this;
        }

        public Criteria andSskcsIsNotNull() {
            addCriterion("SSKCS is not null");
            return (Criteria) this;
        }

        public Criteria andSskcsEqualTo(BigDecimal value) {
            addCriterion("SSKCS =", value, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsNotEqualTo(BigDecimal value) {
            addCriterion("SSKCS <>", value, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsGreaterThan(BigDecimal value) {
            addCriterion("SSKCS >", value, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("SSKCS >=", value, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsLessThan(BigDecimal value) {
            addCriterion("SSKCS <", value, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsLessThanOrEqualTo(BigDecimal value) {
            addCriterion("SSKCS <=", value, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsIn(List<BigDecimal> values) {
            addCriterion("SSKCS in", values, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsNotIn(List<BigDecimal> values) {
            addCriterion("SSKCS not in", values, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SSKCS between", value1, value2, "sskcs");
            return (Criteria) this;
        }

        public Criteria andSskcsNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("SSKCS not between", value1, value2, "sskcs");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}